home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO088A.dsk / KB.bas < prev    next >
BASIC Source File  |  2012-02-16  |  4KB  |  84 lines

  1. 100  REM  KEYBOARD ENHANCED TEST
  2. 105  REM  F ROW
  3. 107  DATA  122,120,99,118,39,97,98,100,101,109,103,111,105,107,113 
  4. 110  REM   ROW 1
  5. 120  DATA   27,33,64,35,36,37,94,38,42,40,41,95,43,127,24,61,47,42 
  6. 125  REM  ROW 2
  7. 127  DATA   9,81,87,69,82,84,89,85,73,79,80,91,93,55,56,57,43
  8. 130  REM   ROW 3 OF KEYS
  9. 140  DATA    65,83,68,70,71,72,74,75,76,59,39,13,52,53,54,45
  10. 147  DATA   90,88,67,86,66,78,77,44,46,47,49,50,51
  11. 150  REM  ROW 5 OF KEYS
  12. 160  DATA     2,1,96,32,92,8,21,10,11,48,46,13   
  13. 170  PRINT  CHR$(4);"PR#3": REM  TURN ON 80 COL
  14. 180  PRINT  CHR$(18): REM  80 COL ON
  15. 190  DIM N(76)
  16. 200 IE$ =  CHR$(15) + CHR$(27): REM  INVERSE + ALT CHAR SET
  17. 210 OFF$ =  CHR$(14) + CHR$(24): REM  NORMAL + REG CHAR SET
  18. 220  HOME 
  19. 230  POKE 1403,31: PRINT "Keyboard Test //GS"
  20. 235  PRINT : PRINT 
  21. 240  PRINT "     Make sure CAPS LOCK key is down.  Press keys starting from top row              in left to right fashion.  The first row requires you to press"
  22. 242  PRINT "     down the SHIFT key.  The speaker will beep if a key is incorrectly              pressed or is sticking.  No beep upon a key press means it is not               working properly.  You will return to the main menu when finished."
  23. 250  PRINT : PRINT 
  24. 260  FOR I = 1 TO 76: READ N(I): NEXT I
  25. 270  VTAB 12
  26. 280  PRINT  TAB( 16);"ESC";" ";
  27. 290  FOR I = 2 TO 13: PRINT  CHR$(N(I));" ";
  28. 300  NEXT : PRINT "DELETE";
  29. 303  POKE 1403,55: PRINT "CLEAR = / *": PRINT 
  30. 310  PRINT  TAB( 17);"TAB";" ";
  31. 320  FOR I = 20 TO 31: PRINT  CHR$(N(I));" ";: NEXT 
  32. 323  POKE 1403,59: PRINT "7 8 9 +"
  33. 330  PRINT 
  34. 340  POKE 1403,21: FOR I = 36 TO 46: PRINT  CHR$(N(I));" ";: NEXT : PRINT "RETURN";
  35. 343  POKE 1403,59: PRINT "4 5 6 -";
  36. 350  PRINT : PRINT 
  37. 360  POKE 1403,22: FOR I = 52 TO 61: PRINT  CHR$(N(I));" ";: NEXT 
  38. 365  POKE 1403,59: PRINT "1 2 3"
  39. 370  PRINT 
  40. 380  PRINT  TAB( 16);"OPTION ";IE$;"A";OFF$;" ";"` ";" space bar ";"\ ";IE$;"H";OFF$;" ";IE$;"U";OFF$;" ";IE$;"J";OFF$;" ";IE$;"K";OFF$;: POKE 1403,59: PRINT "0   . ENTER"
  41. 390  RESTORE 
  42. 400  READ N
  43. 410  IF N = 27  THEN  VTAB 12: POKE 1403,15: REM  ESC
  44. 415  IF N = 24  THEN  VTAB 12: POKE 1403,55: REM  CLEAR
  45. 420  IF N = 9  THEN  VTAB 14: POKE 1403,16: REM  TAB
  46. 425  IF N = 55  THEN  VTAB 14: POKE 1403,59: REM  7
  47. 430  IF N = 65  THEN  VTAB 16: POKE 1403,21: REM  A
  48. 435  IF N = 52  THEN  VTAB 16: POKE 1403,59: REM  4
  49. 440  IF N = 90  THEN  VTAB 18: POKE 1403,22: REM  Z
  50. 445  IF N = 49  THEN  VTAB 18: POKE 1403,59: REM  1
  51. 450  IF N = 96  THEN  VTAB 20: POKE 1403,24: REM  `
  52. 460  IF N = 1  THEN  GOTO 630
  53. 470  IF N = 2  THEN  GOTO 670
  54. 520  GET K$
  55. 530  IF   NOT ( PEEK(49189) = 16  AND  ASC(K$) = N)  THEN  PRINT  CHR$(7): GOTO 520
  56. 560  IF  ASC(K$) < >N  THEN  PRINT  CHR$(7);: GOTO 520
  57. 570 BL$ = "  "
  58. 580  IF N = 27  OR N = 9  THEN BL$ = "    "
  59. 590  IF N = 32  THEN BL$ = "          "
  60. 600  IF N = 13  OR N = 127  OR N = 24  THEN BL$ = "      "
  61. 605  IF N = 11  THEN  PRINT BL$: VTAB 20: POKE 1403,59: GOTO 4000
  62. 620  PRINT BL$;: GOTO 400
  63. 630  REM  OPEN/SOLID APPLE KEYS
  64. 635  VTAB 20: POKE 1403,22
  65. 640  FOR I = 1 TO 20000
  66. 650  IF  PEEK( -16287) >127  THEN  PRINT "  ";: GOTO 400
  67. 660  NEXT 
  68. 670  VTAB 20: POKE 1403,15
  69. 680  FOR I = 1 TO 20000
  70. 690  IF  PEEK( -16286) >127  THEN  PRINT "      ";: GOTO 400
  71. 700  NEXT 
  72. 4000  REM  LAST FEW KEYS
  73. 4010  READ N
  74. 4020  GET K$
  75. 4030  IF  ASC(K$) < >N  THEN  PRINT  CHR$(7);: GOTO 4010
  76. 4040  PRINT "    ";
  77. 4045  READ N
  78. 4050  GET K$
  79. 4060  IF  ASC(K$) < >N  THEN  PRINT  CHR$(7);: GOTO 4050
  80. 4070  PRINT "  ";
  81. 4085  READ N
  82. 4090  GET K$
  83. 4100  IF  ASC(K$) < >N  THEN  PRINT  CHR$(7);: GOTO 4050
  84. 4110  PRINT  CHR$(21): HOME : VTAB 10: HTAB 10: PRINT "KEYBOARD OPERATIONAL": PRINT : PRINT : PRINT  TAB( 9);"RETURNING TO  MAIN MENU": PRINT  CHR$(4);"RUN HELLO2"